/**
 * @description seed-form-date 日期
 * 自定义项可以直接根据后台接口返回的自定义字段 matchSignupFields 循环出来 输入框或者 选择框
 * 在对应的 ts 里 建立 formGroup 添加对应的控制器 control
 * 在html的form表单里需要加上 ngDefaultControl 才能被识别为 form 的 control
 * @author ouxh862
 * @Input() title: string; 输入框名称
 * @Input() type: string; 输入框类型
 * @Input() selectValue: string; 如果 MatchSignupFieldsResp 的type 字段值为2 时, boxValue 字段会是一个非空数组，即选择框的选项
 * @Input() defaultValue: string; 默认值
 *
 * 如果需要错误提示，可以在标签里面添加
 * example: （可参考seed-form-base）
 * html:
 * <seed-form-select-date
    [defaultValue]="setBaseDefault('birthday')"
    formControlName="birthday"  [placeholder]="'请选择出生日期'" ngDefaultControl >
       <p class="error-tip" *ngIf="!signForm.controls['birthday'].valid">请选择出生日期</p>
   </seed-form-select-date>
 */

import {
  Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, Input, Output,
  EventEmitter
} from '@angular/core';

@Component({
  selector: 'seed-form-select-date',
  templateUrl: './form-select-date.component.html',
  styleUrls: ['./form-select-date.component.scss', '../form-select.component.scss'],
  encapsulation: ViewEncapsulation.None
})
export class FormSelectDateComponent implements OnInit {

  value: string | number;
  valueHasChange = false;
  inputBlur = false;

  @Input() title: string;
  @Input() placeholder: string;

  @Output() valueChange: EventEmitter<any> = new EventEmitter();
  @Output() onBlur: EventEmitter<any> = new EventEmitter();

  constructor() {
    this.title = '出生日期';
  }

  @Input()
  set defaultValue(val) {
    this.value = val;
  }

  get defaultValue() {
    return this.value;
  }

  ngOnInit() {

  }

  change() {
    this.valueHasChange = true;
    this.valueChange.emit(this.value);
  }

  inputOnBlur() {
    this.inputBlur = true;
    this.onBlur.emit(true);
  }
}
